/*
 * @Author: 抱著羊啃 1437670973@qq.com
 * @Date: 2025-05-27 18:56:48
 * @LastEditors: 抱着羊啃 1437670973@qq.com
 * @LastEditTime: 2025-05-28 23:00:56
 * @FilePath: \demo1\src\main\webapp\MainPage\functionPage\page.js
 * @Description: 這是預設設定,請設定`customMade`, 打開koroFileHeader查看配置 進行設定: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */

// 从 URL 参数中获取小说 ID
const urlParams = new URLSearchParams(window.location.search);
const novelId = urlParams.get('id');
console.log('获取到的小说ID:', novelId); // 添加调试信息

// 加载分卷列表
function loadVolumes(novelId) {
    console.log('开始请求分卷列表，URL:', '/demo1_war_exploded/API/Chapter?novelId=' + novelId);
    $.ajax({
        url: '/demo1_war_exploded/API/Chapter?novelId=' + novelId,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            console.log('分卷列表请求成功:', data); 
            if (data.code === 200 && data.data) {
                const volumes = {};
                data.data.forEach((chapter) => {
                    const volumeName = chapter.volume_name || '未知卷名';
                    if (!volumes[volumeName]) {
                        volumes[volumeName] = [];
                    }
                    volumes[volumeName].push(chapter);
                });
                renderVolumesList(volumes);

                // 新增：初始化时展示第一卷内容
                const volumeNames = Object.keys(volumes);
                if (volumeNames.length > 0) {
                    const firstVolumeName = volumeNames[0];
                    const chaptersInFirstVolume = volumes[firstVolumeName];
                    renderChaptersInVolume(chaptersInFirstVolume, firstVolumeName);
                }
            } else {
                console.error('API返回错误或无数据:', data);
                $('#volumes-container').html('<div class="text-center py-3">暂无分卷</div>');
            }
        },
        error: function(xhr, status, error) {
            console.error('请求 Chapter 接口出错:', error);
            console.error('状态码:', xhr.status);
            console.error('响应文本:', xhr.responseText);
            $('#volumes-container').html('<div class="text-center py-3">加载分卷列表失败</div>');
        }
    });
}

// 渲染分卷列表
function renderVolumesList(volumes) {
    console.log('开始渲染分卷列表:', volumes); 
    
    if (!volumes || Object.keys(volumes).length === 0) {
        $('#volumes-container').html('<div class="text-center py-3">暂无分卷</div>');
        console.log('无分卷数据，已设置提示信息');
        return;
    }

    let html = '';
    for (const volumeName in volumes) {
        html += `
            <div class="volume-item" data-volume-name="${volumeName}">
                <div class="volume-title">${volumeName}</div>
            </div>
        `;
    }

    console.log('生成的 HTML:', html); 
    $('#volumes-container').html(html);
    console.log('HTML 已插入到 DOM');

    // 添加分卷点击事件
    $('.volume-item').on('click', function() {
        const volumeName = $(this).data('volume-name');
        const chaptersInVolume = volumes[volumeName];
        renderChaptersInVolume(chaptersInVolume, volumeName);
    });
    console.log('分卷点击事件已绑定，数量:', $('.volume-item').length);
}

// 渲染分卷内的章节列表
function renderChaptersInVolume(chapters, volumeName) {
    $('#volume-chapter-title').text(`${volumeName} - 章节列表`);
    let html = '';
    chapters.forEach((chapter) => {
        const title = chapter.chapter_title || '未知标题';
        html += `
            <div class="chapter-item-in-volume" data-chapter-id="${chapter.chapter_id}" style="cursor: pointer; padding: 8px; border-bottom: 1px solid #eee;">
                ${title}
            </div>
        `;
    });
    $('#volume-chapters-content').html(html);
    
    // 添加章节点击事件，在新窗口打开阅读页面
    $('.chapter-item-in-volume').on('click', function() {
        const chapterId = $(this).data('chapter-id');
        // 在新窗口打开阅读页面，传递章节ID和小说ID
        window.open(`reader.jsp?novelId=${novelId}&chapterId=${chapterId}`, '_blank');
    });
}

$(document).ready(function() {
    if (novelId) {
        // 请求 BookshelfServlet 接口，检查是否已收藏
        checkCollection(novelId);

        // 请求 ChapterServlet 接口，加载分卷列表
        console.log('准备加载分卷列表，小说ID:', novelId); 
        loadVolumes(novelId);

        // 新增：请求 BookshelfServlet 接口，获取小说所有信息
        getNovelInfo(novelId);
    } else {
        console.error('未获取到有效的小说 ID');
        // 如果没有ID，显示提示信息
        $('#volumes-container').html('<div class="text-center py-3">未获取到小说ID，无法加载分卷</div>');
    }

    // 收藏按钮点击事件
    $('#collectBtn').on('click', function() {
        toggleCollection(novelId);
    });
});

// 检查是否已收藏
function checkCollection(novelId) {
    $.ajax({
        url: '/demo1_war_exploded/API/Bookshelf/check/' + novelId,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            if (data.code === 200) {
                if (data.collected) {
                    $('#collectBtn').text('已收藏').addClass('btn-secondary').removeClass('btn-outline-primary');
                }
            }
        },
        error: function(xhr, status, error) {
            console.error('请求 Bookshelf 接口出错:', error);
        }
    });
}

// 切换收藏状态
function toggleCollection(novelId) {
    const isCollected = $('#collectBtn').hasClass('btn-secondary');
    if (isCollected) {
        // 已收藏，调用 DELETE 请求取消收藏
        $.ajax({
            url: '/demo1_war_exploded/API/Bookshelf?novelId=' + novelId, // 将参数添加到 URL 中
            type: 'DELETE',
            dataType: 'json',
            success: function(data) {
                if (data.code === 200) {
                    $('#collectBtn').text('加入书架').addClass('btn-outline-primary').removeClass('btn-secondary');
                }
            },
            error: function(xhr, status, error) {
                console.error('请求 Bookshelf 接口出错:', error);
            }
        });
    } else {
        // 未收藏，调用 POST 请求添加收藏
        $.ajax({
            url: '/demo1_war_exploded/API/Bookshelf',
            type: 'POST',
            data: {
                novelId: novelId,
                action: 'add'
            },
            dataType: 'json',
            success: function(data) {
                if (data.code === 200) {
                    $('#collectBtn').text('已收藏').addClass('btn-secondary').removeClass('btn-outline-primary');
                }
            },
            error: function(xhr, status, error) {
                console.error('请求 Bookshelf 接口出错:', error);
            }
        });
    }
}

// 加载章节列表
function loadChapters(novelId) {
    $.ajax({
        url: '/demo1_war_exploded/API/Chapter?novelId=' + novelId,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            console.log('章节列表请求成功:', data); // 添加调试信息
            if (data.code === 200 && data.data) {
                chapters = data.data;
                console.log('获取到章节数量:', chapters.length);
                // 移除不存在的元素更新代码
                // $('#chapter-count').text(chapters.length); 
                
                // 直接渲染，确保 DOM 已加载（因为在 $(document).ready 中调用）
                renderChapterList(chapters);
            } else {
                console.error('API返回错误或无数据:', data);
                $('#chapters-container').html('<div class="text-center py-3">暂无章节</div>');
            }
        },
        error: function(xhr, status, error) {
            console.error('请求 Chapter 接口出错:', error);
            console.error('状态码:', xhr.status);
            console.error('响应文本:', xhr.responseText);
            $('#chapters-container').html('<div class="text-center py-3">加载章节列表失败</div>');
        }
    });
}

// 渲染章节列表
function renderChapterList(chapters) {
    console.log('开始渲染章节列表:', chapters); // 添加调试信息
    console.log('chapters-container 元素存在:', $('#chapters-container').length > 0); // 检查元素是否存在
    
    if (!chapters || chapters.length === 0) {
        $('#chapters-container').html('<div class="text-center py-3">暂无章节</div>');
        console.log('无章节数据，已设置提示信息');
        return;
    }

    let html = '';
    let currentVolume = null;
    chapters.forEach((chapter, index) => {
        // 数据验证
        const title = chapter.chapter_title || '未知标题';
        const number = chapter.chapter_number || '未知编号';
        const volumeName = chapter.volume_name || '未知卷名';

        if (currentVolume !== volumeName) {
            html += `<div class="volume-title">${volumeName}</div>`;
            currentVolume = volumeName;
        }

        html += `
            <div class="chapter-item" data-chapter-id="${chapter.chapter_id}" data-index="${index}">
                <div>${title}</div>
            </div>
        `;
    });

    console.log('生成的 HTML:', html); // 添加调试信息
    $('#chapters-container').html(html);
    console.log('HTML 已插入到 DOM');

    // 添加章节点击事件
    $('.chapter-item').on('click', function() {
        const chapterId = $(this).data('chapter-id');
        currentChapterIndex = $(this).data('index');
        loadChapter(chapterId);
    });
    console.log('章节点击事件已绑定，数量:', $('.chapter-item').length);
}

// 新增：获取小说所有信息
function getNovelInfo(novelId) {
    $.ajax({
        url: '/demo1_war_exploded/API/Bookshelf/' + novelId,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            if (data.code === 200) {
                const novel = data.data;
                console.log('获取到的小说信息:', novel);
                // 更新小说封面
                $('#novel-cover').attr('src', novel.cover_url.trim());
                // 更新小说标题
                $('#novel-title').text(novel.novel_name);
                // 更新小说作者 - 修改为显示用户名而不是作者ID
                $('#novel-author').text(novel.username || '未知作者');
                // 更新小说简介
                $('#novel-introduction').text(novel.introduction);
                // 更新总章节数
                $('#total-chapters').text(novel.total_chapters);
                // 更新总字数
                $('#novel-word-count').text(novel.novel_word_count);
            } else {
                console.error('获取小说信息失败:', data.msg);
            }
        },
        error: function(xhr, status, error) {
            console.error('请求 Bookshelf 接口出错:', error);
        }
    });
}

// 加载章节内容
// 移除 loadPrevChapter 函数
// function loadPrevChapter() {
//     if (currentChapterIndex > 0) {
//         currentChapterIndex--;
//         const prevChapter = chapters[currentChapterIndex];
//         loadChapter(prevChapter.chapter_id);
//     }
// }

// 移除 loadNextChapter 函数
// function loadNextChapter() {
//     if (currentChapterIndex < chapters.length - 1) {
//         currentChapterIndex++;
//         const nextChapter = chapters[currentChapterIndex];
//         loadChapter(nextChapter.chapter_id);
//     }
// }

// 移除 updateNavigationButtons 函数
// function updateNavigationButtons() {
//     // 禁用/启用上一章按钮
//     if (currentChapterIndex <= 0) {
//         $('#prevChapterBtn').prop('disabled', true);
//     } else {
//         $('#prevChapterBtn').prop('disabled', false);
//     }

//     // 禁用/启用下一章按钮
//     if (currentChapterIndex >= chapters.length - 1) {
//         $('#nextChapterBtn').prop('disabled', true);
//     } else {
//         $('#nextChapterBtn').prop('disabled', false);
//     }
// }

// 移除 loadChapter 函数中调用 updateNavigationButtons 的代码
// function loadChapter(chapterId) {
//     // 这里假设还有一个接口用于获取章节内容，可根据实际情况修改
//     $.ajax({
//         url: '/demo1_war_exploded/API/Chapter/' + chapterId,
//         type: 'GET',
//         dataType: 'json',
//         success: function(data) {
//             if (data.code === 200 && data.data) {
//                 const chapter = data.data;

//                 // 设置章节标题
//                 $('#chapter-title').text(chapter.chapter_title);

//                 // 设置章节内容，将\n替换为<br>
//                 const content = chapter.content.replace(/\n/g, '<br>');
//                 $('#chapter-content').html(content);

//                 // 高亮当前章节
//                 $('.chapter-item').removeClass('active');
//                 $(`.chapter-item[data-chapter-id="${chapterId}"]`).addClass('active');

//                 // 移除更新导航按钮状态的调用
//                 // updateNavigationButtons();

//                 // 滚动到顶部
//                 window.scrollTo(0, 0);
//             } else {
//                 $('#chapter-content').html('<div class="alert alert-danger">加载章节内容失败</div>');
//             }
//         },
//         error: function() {
//             $('#chapter-content').html('<div class="alert alert-danger">加载章节内容失败</div>');
//         }
//     });
// }
